import javax.swing.*;
import java.awt.event.ActionEvent;

/**
 * MainGame 游戏主类
 *
 * @author 烦得很
 */
public class MainGame {
    private static Timer timer; // 计时器
    private static int updateTime; // 刷新时间
    private static GameManager gameManager;
    private static Rendering gameRender;
    // /**
    // * 获得Rendering的实例
    // * @return Rendering的实例
    // */
    // public Rendering getRendering() {
    // return gameRender;
    // }

    // score的上一个参加判断的值，用于防止重复判断
    private static int currentScore = -1;

    /**
     * 定时刷新
     */
    public static void updateGame(int time) {
        if (timer == null) {
            timer = new Timer(time, (ActionEvent e) -> {
                gameManager.update();
                int score = gameManager.getScores();
                // 增加难度(每吃五个减少100毫秒)
                if (score != 0 && updateTime > gameRender.getMinUpdateTime()) {
                    if (score % 5 == 0 && score != currentScore) {
                        currentScore = score;
                        updateTime -= 100;
                    }
                }
                System.out.println(updateTime);
            });
        }
        timer.start();
    }

    /**
     * 主函数
     */
    public static void main(String[] args) {
        gameManager = new GameManager();
        gameRender = GameManager.getGameRender();
        updateTime = GameManager.getGameRender().getMaxUpdateTime();
        SwingUtilities.invokeLater(() -> {
            updateGame(updateTime);
        });
    }
}
